]> dgit.raspbian.org Git - kf6-kio.git/commitdiff
report_error_removing_dirs
authorDebian/Kubuntu Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Thu, 31 Mar 2016 13:38:43 +0000 (15:38 +0200)
committerAurélien COUDERC <coucouf@debian.org>
Sun, 26 Jul 2026 21:35:19 +0000 (23:35 +0200)
Last-Updated: 2024-12-04

===================================================================

Gbp-Pq: Name report_error_removing_dirs

src/core/copyjob.cpp

index d564aecfda118d2fa56741f9f84346732ca2a5b3..f86cd746862a7f2a05f4472806b40cc216cfc5e1 100644 (file)
@@ -263,6 +263,7 @@ public:
         , m_bOverwriteAllDirs(false)
         , m_bOverwriteWhenOlder(false)
         , m_conflictError(0)
+        , m_dirsFailedError(0)
         , m_reportTimer(nullptr)
     {
     }
@@ -337,6 +338,8 @@ public:
     };
 
     int m_conflictError;
+    int m_dirsFailedError;
+    QString m_dirsFailedErrorText;
 
     QTimer *m_reportTimer;
     QElapsedTimer m_speedMeasurementTimer;
@@ -2211,6 +2214,10 @@ void CopyJobPrivate::setNextDirAttribute()
             m_reportTimer->stop();
         }
 
+        if (m_dirsFailedError) {
+            q->setError(m_dirsFailedError);
+            q->setErrorText(m_dirsFailedErrorText);
+        }
         q->emitResult();
     }
 }
@@ -2313,12 +2320,14 @@ void CopyJobPrivate::slotTotalSize(KJob *, qulonglong size)
 void CopyJobPrivate::slotResultDeletingDirs(KJob *job)
 {
     Q_Q(CopyJob);
+    const QUrl url = static_cast<KIO::SimpleJob *>(job)->url();
     if (job->error()) {
-        // Couldn't remove directory. Well, perhaps it's not empty
-        // because the user pressed Skip for a given file in it.
-        // Let's not display "Could not remove dir ..." for each of those dir !
+        m_dirsFailedError = job->error();
+        m_dirsFailedErrorText = job->errorText();
+        // Remove the parents
+        skip(url, true);
     } else {
-        m_successSrcList.append(static_cast<KIO::SimpleJob *>(job)->url());
+        m_successSrcList.append(url);
     }
     q->removeSubjob(job);
     Q_ASSERT(!q->hasSubjobs());